﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace GestionePolveriLib.BL
{
    public partial class Movimento
    {
        private int? m_pos = null;

        [Browsable(false)]
        public PartitaInfo Partita { get; set; }

        //[Browsable(false)]
        //[DisplayName("Turno2")]
        public string TurnoDescrizione { get { return (this.Turno != null ? this.Turno.Descrizione : string.Empty); } }

        //[Browsable(false)]
        //[DisplayName("POS2")]
        public int? POS { get { return m_pos; } set { m_pos = value; } }

        [Browsable(false)]
        public short? IDTurno { get; set; }

        [Browsable(false)]
        public Turno Turno { get; set; }

        //[Browsable(false)]
        //[DisplayName("Spessori Rilevati2")]
        public string SpessoriRilevati 
        { 
            get 
            {
                string retValue = string.Empty;

                if (this.Partita != null)
                {
                    retValue = string.Format("[{0}, {1}, {2}] - [{3}, {4}, {5}]", Partita.LatoA.Misura1, Partita.LatoA.Misura2, Partita.LatoA.Misura3, Partita.LatoB.Misura1, Partita.LatoB.Misura2, Partita.LatoB.Misura3); 
                }

                return retValue;
            }
        }

        public string SpessoriRilevatiXreport
        {
            get
            {
                string retValue = string.Empty;

                if (this.Partita != null)
                {
                    retValue = string.Format("A: [{0}, {1}, {2}]\nB: [{3}, {4}, {5}]", Partita.LatoA.Misura1, Partita.LatoA.Misura2, Partita.LatoA.Misura3, Partita.LatoB.Misura1, Partita.LatoB.Misura2, Partita.LatoB.Misura3);
                }

                return retValue;
            }
        }
        //[Browsable(false)]
        //[DisplayName("Mater. Verniciato2")]
        public decimal MaterialeVerniciato { get { return (this.Partita != null ? Partita.QuantitaVerniciata.GetValueOrDefault() : 0); } }

        //[Browsable(false)]
        //[DisplayName("Indic. Consumo2")]
        public decimal IndicatoreConsumo 
        { 
            get 
            {
                if (this.Partita != null)
                {
                    if (Partita.QuantitaVerniciata.GetValueOrDefault() == 0) return 0;
                    else
                    {
                        decimal p = (decimal)this.Quantita / Partita.QuantitaVerniciata.GetValueOrDefault();
                        string result = p.ToString("F2");

                        return decimal.Parse(result);
                    }
                }
                else return 0;
            } 
        }

        [Browsable(false)]
        //[DisplayName("Esito Controllo2")]
        public bool EsitoControllo { get { return (this.Partita != null ? Partita.FlagConforme : false); } }

        //[Browsable(false)]
        //[DisplayName("Esito Controllo spessori (OK / NOT OK)")]
        public string EsitoControllo2 { get { return (this.Partita != null ? (Partita.FlagConforme ? "Conforme" : "Non Conforme") : "Non Conforme"); } }

        //[Browsable(false)]
        //[DisplayName("Cod. Colore2")]
        public string ColoreVerniciato { get { return (this.Partita != null ? Partita.ColoreVerniciato.CodiceColore : string.Empty); } }

        //[Browsable(false)]
        //[DisplayName("Descr. Colore2")]
        public string DescrizioneColoreVerniciato { get { return (this.Partita != null ? Partita.ColoreVerniciato.Descrizione : string.Empty); } }
    }
}
